Automating Program Proofs Based on Separation Logic with Inductive Definitions

نویسندگان

  • Constantin Enea
  • Mihaela Sighireanu
  • Zhilin Wu
چکیده

This paper investigates the use of Separation Logic with inductive definitions in reasoning about programs that manipulate dynamic data structures. We propose a novel approach for exploiting the inductive definitions in automating program proofs based on inductive invariants. We focus on iterative programs, although our techniques apply to recursive programs as well, and specifications that describe not only the shape of the data structures, but also their content or their size. This approach is based on a careful inspection of the typical lemmas needed in such program proofs and efficiently checkable criteria for recognizing inductive definitions that satisfy these lemmas. Empirically, we find that our approach is powerful enough to deal with sophisticated benchmarks, e.g., iterative procedures for searching, inserting, or deleting elements in binary search tress, red-black trees, and AVL trees, in a very efficient way.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Proof Systems for Inductive Reasoning in the Logic of Bunched Implications

We report on our early progress in developing suitable frameworks for inductive reasoning in separation logic and related logics for low-level program verification, following the approach of our previous work on sequent proof systems for first-order logic with inductive definitions. We extend a first-order predicate version of the logic of bunched implications, BI — of which separation logic is...

متن کامل

Infinitary and Cyclic Proof Systems for Transitive Closure Logic

We formulate an infinitary proof system for transitive closure logic, which is the logic obtained by augmenting first-order logics with a transitive closure operator. Our system is an infinite descent-style counterpart to the existing (explicit induction) proof system for the logic. We show that, as for similar systems for first order logic with inductive definitions, our infinitary system is c...

متن کامل

VeriFast: Imperative Programs as Proofs

We propose an approach for the verification of imperative programs based on the tool-supported, interactive insertion of annotations into the source code. Annotations include routine preconditions and postconditions and loop invariants in a form of separation logic, as well as inductive datatype definitions and recursive function and predicate definitions to enable rich specifications. To enabl...

متن کامل

A Generic Cyclic Theorem Prover

We describe the design and implementation of an automated theorem prover realising a fully general notion of cyclic proof. Our tool, called Cyclist, is able to construct proofs obeying a very general cycle scheme in which leaves may be linked to any other matching node in the proof, and to verify the general, global infinitary condition on such proof objects ensuring their soundness. Cyclist is...

متن کامل

Automated Cyclic Entailment Proofs in Separation Logic

We present a general automated proof procedure, based upon cyclic proof, for inductive entailments in separation logic. Our procedure has been implemented via a deep embedding of cyclic proofs in the HOL Light theorem prover. Experiments show that our mechanism is able to prove a number of non-trivial entailments involving inductive predicates.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015